Remote access of computer functionality has become a common part of the way in which people use computers to work and play. There are a variety of remote access architectures, each with its benefits and drawbacks. The large installed base of computers, computer operating systems and computer applications that provide for remote access of functionality each support the various remote access architectures to some degree including no support and, in particular, partial support. The ambiguity of partial support can have significant associated costs, particularly for large organizations where it is not uncommon to undertake a substantial assessment process for each application and/or set of functionality to be offered to the organization's user base.
Partial support can be a particular problem with thin client remote access architectures. In such architectures, a relatively simple (i.e., thin) client provides a user interface to a server that provides the bulk of application functionality. A benefit commonly sought by those using such architectures is network management efficiency by relocating application components from a large number of client computers to a smaller set of server computers. However, such relocation can cause problems in cases where the application is not explicitly designed for relocation. For example, a computer operating system typically offers a variety of resources for applications, and some of those resources may be referenced by a name space that is global to the system (e.g., files referenced by a file system name space). An application may use the global name space in a way that is suitable for a client computer, but that causes problems such as name conflicts and/or collisions when used in the context of a server computer simultaneously executing multiple application instances.
It is desirable to solve such problems without explicit design and/or redesign at least because it can be costly, but also because the root causes can be subtle and the solutions difficult to fully test, particularly where problems arise from conflict between components from different vendors. However, unplanned name space and/or resource sharing can also create security risks ranging from denial of service to unauthorized access and information leakage, so that a robust solution is desirable to avoid such risks. Some conventional remote access architectures attempt to solve such problems by pre-sequencing applications (i.e., determining application resource usage in advance) but pre-sequencing can itself be a substantial undertaking and may not resolve some issues. It is sometimes possible to use brute force methods such as multiple operating systems or even multiple hardware subsystems to solve such problems, but a more efficient and flexible solution is desirable.